#include<iostream>
using namespace std;
int n,m;
int w[30],v[30];
//int dp[40][205];
int dp[205];
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)scanf("%d%d",&w[i],&v[i]);
	for(int i=1;i<=n;i++)
	{
	    /*	for(int j=1;j<=m;j++)
		{
			if(j<w[i])dp[i][j]=dp[i-1][j];
			else dp[i][j]=max(dp[i-1][j],dp[i][j-w[i]]+v[i]);
			
		}*/
		for(int j=m;j>=1;j--)
		{
			if(j>=w[i])
			{
				dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
			}
		}
	}
	printf("%d",dp[m]);
	//printf("%d",dp[n][m]);
	return 0;
 } 
